package test;

import lombok.extern.slf4j.Slf4j;

/**
 * @author Seon
 * @date 2023/3/29
 */
@Slf4j
public class 棋盘翻转 {
    public static void main(String[] args) {
        new 棋盘翻转().flipChess(null, null);
    }
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     * 注意本题中，如果要翻转0和1的关系的话，就直接去与1异或.
     *
     *
     * @param A int整型二维数组
     * @param f int整型二维数组
     * @return int整型二维数组
     */
    public int[][] flipChess (int[][] A, int[][] f) {
        // write code here
        for (int[] data : f) {
            int x = data[0] - 1;
            int y = data[1] - 1;
            for (int j = x - 1; j <= x + 1; j++) {
                for (int k = y - 1; k <= y + 1; k++) {
                    if (j < 0 || j > A.length - 1 || k < 0 || k > A[0].length - 1) {
                        continue;
                    } else if (Math.abs(j-x) + Math.abs(k-y) == 2) {
                        continue;
                    } else if (Math.abs(j-x) + Math.abs(k-y) == 0) {
                        continue;
                    }
                    A[j][k] ^= 1;
                }
            }
        }
        return A;
    }
}
